1. Field of the Invention
This invention relates generally to communication systems, and, more particularly, to wireless communication systems.
2. Description of the Related Art
Streaming media services (e.g. music, video) over wireless communication networks have been gaining in popularity, and are likely to become commercially important to wireless service providers in the near future. A major impediment to their success is the often poor and/or unreliable audio or video quality associated with these services. Packets transmitted through the wireless communication network may be lost, delayed, or experience jitter. For example, signal strength fluctuations due to environmental changes and the need to share the wireless access medium among multiple users lead to significant fluctuations in the rate at which packets carrying a media stream are delivered to mobile units and/or the applications running on the mobile unit such as a media player. Packets may also be lost as they traverse the air interface from the media server to the client, which may cause interruptions in the media service and/or degraded quality of the media service. Conventional media sessions attempt to reduce the effects of lost packets, delayed packets, and/or jitter by buffering the received data stream.
FIG. 1 conceptually illustrates one exemplary embodiment of a conventional system 100 for streaming media over a wireless network 105. In the illustrated embodiment, the system 100 includes a media server 110 that streams media over the wireless network 105 to at least one client 115, such as a mobile unit or an application running on the mobile unit. The media server 110 includes a media encoder 120 that encodes a signal representative of the media that is being streamed to the client 115. The media encoder 120 is capable of encoding streaming media at one or more average bit rates, referred to as hereafter as encoding rates. Typically, for a given media, a higher encoding rate is associated with better media quality from the end-user's perspective. Moreover, even for a given encoding rate (which refers to the average bit-rate at the output of the encoder), the actual bit rate at the output of the encoder can vary substantially over time depending on the corresponding media content. For example, relatively high bit rates may be observed during image sequences that include substantial motion or have a high degree of detail, whereas relatively low bit rates may be observed during static images.
Plots 125(1-n) show the cumulative encoded bytes (vertical axis in arbitrary units) at the output of the media encoder 120 as a function of time (horizontal axis in arbitrary units) for different encoding rates. The encoding rate corresponds to the average slope of the corresponding plot. Plots 125(1-n) clearly point out the differences in the various encoding rates the media encoder 120 is capable of outputting. Moreover, as illustrated by plots 125(1-n), for each encoding rate, the instantaneous bit rate at the output of the media encoder 120, represented by the slope of the corresponding curve as a function of time, can be seen to vary a great deal over time. As explained earlier, if an image in a video stream includes a relatively large percentage of regions that are in motion or have a high degree of detail, then the number of bytes at the output of the media encoder 120 may increase, resulting in a high (instantaneous) bit rate. However, if the image in the video stream changes so that the percentage of regions that are in motion or have a high degree of detail decreases, then the number of bytes at the output of the media encoder 120 may decrease resulting in a low (instantaneous) bit rate. The media server 110 may therefore include a rate shaping element 130 to provide an approximately constant number of transmitted bytes per unit time to the wireless network 105, as indicated by the plot 135.
The wireless network 105 typically performs scheduling of the packets that are transmitted over the air interface to the client 115, as well as implementing adaptive modulation and coding of the packets and automatic repeat request functionality. However, as discussed above, the packets transmitted by the wireless network 105 may be lost, delayed, and/or jittery. Consequently, the number of bytes per unit time that are provided to the client 115 may vary over time, as indicated by the plot 140. In the illustrated embodiment, the client 115 includes a de-jitter buffer 145 and a pre-decoder buffer 150 to attempt to compensate for lost packets, delayed packets, and/or jittery packet arrival times. For example, packets received by the client 115 may be stored in the de-jitter buffer 145 and then pushed out of the de-jitter buffer 145 at an approximately constant number of bytes per unit time, as indicated by the plot 155. The pre-decoder buffer 150 may receive the data stream provided by the de-jitter buffer 145 and may provide the received packets to a media decoder 160 at a desired number of bytes per unit time, as indicated by the plot 165.
The media server 110 and the client 115 include built-in features that allow the client 115 to send intermittent feedback to the media server 110, as indicated by the arrow 170. The feedback 170 typically informs the media server 110 of end-to-end performance metrics such as the rate at which packets are being delivered, loss of packets, available buffer space, and the like. The end-to-end performance metrics are used in conjunction with information local to the media server 110 to control the source encoding rate and/or transmission rate. However, end-to-end performance metrics only provide information that can be deduced from the data stream received by the client 115. Furthermore, at least in part to reduce overhead that must be transmitted over limited uplink bandwidth available for streaming media sessions, the client 115 typically provides the feedback 170 on a relatively long time scale. e.g. every 3-5 seconds.
The lack of direct knowledge of network conditions and/or the effects of competing users, as well as the long time scale, limits the usefulness of the feedback 170. For example, the wireless network 105 typically implements scheduling and rate adaptation techniques based on fast channel quality feedback over the wireless link in order to exploit multi-user diversity resulting from fast variations (e.g., on the scale of milliseconds) in channel quality. These techniques result in significant variability in the rate achieved across the wireless link for a given media session, and the feedback 170 is not provided to the media server 110 often enough to help it effectively respond to rapid variations in the supported transmission rate. As a result, the conventional media server 110 cannot deliver the best possible media quality in the presence of rapid variations in the transmission rate over the air interface. Furthermore, the feedback 170 does not include information that provides direct knowledge of network conditions and users competing for the shared bandwidth, which precludes the possibility of the media server 110 employing more sophisticated methods to predict buffer overflows and underflows, which can help the server 110 take proactive actions to avoid these events.
Since the media server 1 10 can only shape transmission rates based upon the relatively slow end-to-end feedback 170, the resources that are available for streaming media over the wireless network 105 may not be used in an optimal or efficient manner. For example, the media server 110 typically selects a transmission rate based on the feedback 170. The selected transmission rate may reflect the effects of averaging conditions in the wireless network 105 over a relatively long period of time. However, the actual transmission rates that are supported by the wireless network 105 at any given moment may vary widely from this average rate, resulting in an inefficient use of the resources. If the average values are used to select a high media source encoding rate that is not sustainable during the time period that packets are transmitted at this rate, packet losses may occur, resulting in unacceptable media quality; also, downlink resource availability for other users or sessions may be undesirably reduced. On the other hand, selecting lower source rates may underutilize the available resources during periods when the wireless network could support higher transmission rates. Under-utilization of the available resources may mean delivering the media at less than the best possible quality level under prevailing conditions.